جلد سخت سیاه و سفید
Product details
- Publisher : Packt Publishing (August 5, 2022)
- Language : English
- Paperback : 638 pages
- ISBN-10 : 1801075034
- ISBN-13 : 978-1801075039
کتاب Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules
Effectively debug kernel modules, device drivers, and the kernel itself by gaining a solid understanding of powerful open source tools and advanced kernel debugging techniques
Key Features
- Fully understand how to use a variety of kernel and module debugging tools and techniques using examples
- Learn to expertly interpret a kernel Oops and identify underlying defect(s)
- Use easy-to-look up tables and clear explanations of kernel-level defects to make this complex topic easy
Book Description
The Linux kernel is at the very core of arguably the world's best production-quality OS. Debugging it, though, can be a complex endeavor.
Linux Kernel Debugging is a comprehensive guide to learning all about advanced kernel debugging. This book covers many areas in-depth, such as instrumentation-based debugging techniques (printk and the dynamic debug framework), and shows you how to use Kprobes. Memory-related bugs tend to be a nightmare – two chapters are packed with tools and techniques devoted to debugging them. When the kernel gifts you an Oops, how exactly do you interpret it to be able to debug the underlying issue? We've got you covered. Concurrency tends to be an inherently complex topic, so a chapter on lock debugging will help you to learn precisely what data races are, including using KCSAN to detect them. Some thorny issues, both debug- and performance-wise, require detailed kernel-level tracing; you'll learn to wield the impressive power of Ftrace and its frontends. You'll also discover how to handle kernel lockups, hangs, and the dreaded kernel panic, as well as leverage the venerable GDB tool within the kernel (KGDB), along with much more.
By the end of this book, you will have at your disposal a wide range of powerful kernel debugging tools and techniques, along with a keen sense of when to use which.
What you will learn
- Explore instrumentation-based printk along with the powerful dynamic debug framework
- Use static and dynamic Kprobes to trap into kernel/module functions
- Catch kernel memory defects with KASAN, UBSAN, SLUB debug, and kmemleak
- Interpret an Oops in depth and precisely identify it's source location
- Understand data races and use KCSAN to catch evasive concurrency defects
- Leverage Ftrace and trace-cmd to trace the kernel flow in great detail
- Write a custom kernel panic handler and detect kernel lockups and hangs
- Use KGDB to single-step and debug kernel/module source code
Who this book is for
This book is for Linux kernel developers, module/driver authors, and testers interested in debugging and enhancing their Linux systems at the level of the kernel. System administrators who want to understand and debug the internal infrastructure of their Linux kernels will also find this book useful. A good grasp on C programming and the Linux command line is necessary. Some experience with kernel (module) development will help you follow along.
Table of Contents
- A General Introduction to Debugging Software
- Approaches to Kernel Debugging
- Debug via Instrumentation – printk and Friends
- Debug via Instrumentation – Kprobes
- Debugging Kernel Memory Issues – Part 1
- Debugging Kernel Memory Issues – Part 2
- Oops! Interpreting the Kernel Bug Diagnostic
- Lock Debugging
- Tracing the Kernel Flow
- Kernel Panic, Lockups, and Hangs
- Using Kernel GDB (KGDB)
- A Few More Kernel Debugging Approaches
منابع کتاب کتاب Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules
با به دست آوردن درک کاملی از ابزارهای منبع باز قدرتمند و تکنیک های پیشرفته اشکال زدایی هسته، ماژول های هسته، درایورهای دستگاه و خود هسته را به طور موثر اشکال زدایی کنید.
ویژگی های کلیدی
- به طور کامل نحوه استفاده از انواع ابزارها و تکنیک های اشکال زدایی هسته و ماژول را با استفاده از مثال ها درک کنید
- یاد بگیرید که به طور ماهرانه یک هسته را تفسیر کنید Oops و شناسایی نقص(های) اساسی
- برای آسان کردن این موضوع پیچیده، از جداول با جستجوی آسان و توضیحات واضح در مورد نقص های سطح هسته استفاده کنید.
توضیحات کتاب
هسته لینوکس در هسته اصلی بهترین سیستم عامل با کیفیت تولیدی جهان قرار دارد. با این حال، اشکال زدایی آن می تواند یک تلاش پیچیده باشد.
اشکال زدایی هسته لینوکس راهنمای جامعی برای یادگیری همه چیز در مورد اشکال زدایی هسته پیشرفته است. این کتاب بسیاری از زمینه ها را به طور عمیق پوشش می دهد، مانند تکنیک های اشکال زدایی مبتنی بر ابزار دقیق (printk و چارچوب اشکال زدایی پویا)، و نحوه استفاده از Kprobes را به شما نشان می دهد. اشکالات مربوط به حافظه معمولاً یک کابوس هستند - دو فصل مملو از ابزارها و تکنیک هایی است که به اشکال زدایی آنها اختصاص داده شده است. وقتی هسته به شما Oops می دهد، دقیقاً چگونه آن را تفسیر می کنید که بتوانید مشکل اصلی را اشکال زدایی کنید؟ ما شما را تحت پوشش قرار داده ایم. همزمانی یک موضوع ذاتاً پیچیده است، بنابراین فصلی در مورد اشکال زدایی قفل به شما کمک می کند تا دقیقاً بدانید که مسابقه داده چیست، از جمله استفاده از KCSAN برای شناسایی آنها. برخی از مسائل دشوار، هم از نظر اشکال زدایی و هم از نظر عملکرد، نیازمند ردیابی دقیق در سطح هسته هستند. شما' یاد خواهم گرفت که از قدرت چشمگیر Ftrace و قسمت های جلویی آن استفاده کنید. شما همچنین خواهید فهمید که چگونه می توانید با قفل شدن هسته، هنگ کردن، و وحشت مخوف هسته، و همچنین استفاده از ابزار GDB محترم در هسته (KGDB) و موارد دیگر استفاده کنید.
در پایان این کتاب، طیف وسیعی از ابزارها و تکنیکهای قدرتمند اشکالزدایی هسته را در اختیار خواهید داشت، همراه با درک دقیق زمان استفاده از آن.
آنچه خواهید آموخت
- چاپهای مبتنی بر ابزار دقیق را همراه با چارچوب قدرتمند اشکالزدایی پویا کاوش کنید
- از Kprobes استاتیک و پویا برای به دام انداختن توابع هسته/ماژول استفاده کنید
- عیوب حافظه هسته را با KASAN، UBSAN، SLUB debug و kmemleak پیدا کنید.
- Oops را عمیقاً تفسیر کنید و مکان منبع آن را دقیقاً شناسایی کنید
- رقابت های داده را درک کنید و از KCSAN برای تشخیص نقص های همزمان فراری استفاده کنید
- از Ftrace و trace-cmd برای ردیابی جریان هسته با جزئیات زیاد استفاده کنید
- یک کنترل کننده وحشت کرنل سفارشی بنویسید و قفل شدن و هنگ کردن هسته را شناسایی کنید
- از KGDB برای تک مرحله ای و اشکال زدایی کد منبع هسته/ماژول استفاده کنید
این کتاب برای چه کسی است
این کتاب برای توسعه دهندگان هسته لینوکس، نویسندگان ماژول/درایور و آزمایش کنندگانی است که علاقه مند به اشکال زدایی و تقویت سیستم های لینوکس خود در سطح هسته هستند. مدیران سیستمی که می خواهند زیرساخت داخلی هسته های لینوکس خود را درک و اشکال زدایی کنند نیز این کتاب را مفید خواهند یافت. درک خوب برنامه نویسی C و خط فرمان لینوکس ضروری است. برخی از تجربیات در مورد توسعه هسته (ماژول) به شما کمک می کند تا ادامه دهید.
فهرست مطالب
- مقدمه ای کلی بر نرم افزار اشکال زدایی
- رویکردهایی برای اشکال زدایی هسته
- اشکال زدایی از طریق ابزار دقیق - printk و دوستان
- اشکال زدایی از طریق ابزار دقیق - Kprobes
- اشکال زدایی مشکلات حافظه هسته - قسمت 1
- اشکال زدایی مشکلات حافظه هسته – قسمت 2
- اوه! تفسیر تشخیص اشکال هسته
- اشکال زدایی قفل
- ردیابی جریان هسته
- کرنل پانیک، قفل کردن، و هنگ
- استفاده از هسته GDB (KGDB)
- چند روش دیگر برای رفع اشکال هسته
ارسال نظر درباره کتاب Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules